#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QDockWidget* dockWidget = new QDockWidget(this);
    this->addDockWidget(Qt::TopDockWidgetArea, dockWidget);

    // 设置浮动窗口允许停靠的位置
    dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::LeftDockWidgetArea);

    // 设置浮动窗口标题
    dockWidget->setWindowTitle("这是浮动窗口标题");

    // 不能给浮动窗口添加多个子控件，而是需要创建一个单独的 QWidget，把需要的控件添加到 QWidget 中
    // 然后把 QWidget 设置到 dockWidget 中
    QWidget* container = new QWidget();
    dockWidget->setWidget(container);

    QLabel* label = new QLabel("这是一条文本消息");
    QPushButton* bt = new QPushButton("按钮");

    QVBoxLayout* layout = new QVBoxLayout();
    container->setLayout(layout);

    layout->addWidget(label);
    layout->addWidget(bt);

    // 直接添加多个控件，最新添加的控件会覆盖旧控件
//    dockWidget->setWidget(label);
//    dockWidget->setWidget(bt);
}

MainWindow::~MainWindow()
{
    delete ui;
}

